Bozhday Aleksandr Sergeevich, Doctor of engineering sciences, professor, sub-department of computer aided design systems, Penza State University (40 Krasnaya street, Penza, Russia), E-mail: email@example.com
Evseeva Yuliya Igorevna, Candidate of engineering sciences, associate professor, sub-department of computer aided design systems, Penza State University (40 Krasnaya street, Penza, Russia), E-mail: firstname.lastname@example.org
Gudkov Aleksey Anatol'evich, Candidate of engineering sciences, associate professor, sub-department of computer aided design systems, Penza State University (40 Krasnaya street, Penza, Russia), E-mail: email@example.com
Background. The problem of creating a universal technology for the development of self-adaptive software (SW) has become more and more urgent in recent years, due to the breadth of application of complex software systems and high requirements for their performance and reliability. The purpose of the article is to describe the principles and prospects for developing adaptive software using the technology of tracing the computational process. As a practical example, the possibility of using a popular hardware and software solution for such tracing - Intel Processor Trace - is shown, which is a toolkit for recording traces of program code execution with the minimum amount of information required for this. Analyzing the accumulated set of traces, it is possible to evaluate the statistics of execution of various fragments of the program code and draw conclusions about their comparative efficiency in various conditions. The obtained data can be used as the basis for selfoptimization algorithms for software products.
Materials and methods. Intel Processor Trace software and hardware solution is used as a technological solution for tracing the computational process. Proposed formalization methods use the mathematical apparatus of dynamic graphs.
Results. The concept of using the tracing of the computational process to create software libraries and toolkits aimed at developing self-adaptive software is proposed. Two main ways of practical implementation of the concept are considered: creation of algorithms for the development of self-adaptive software systems operating on the Intel hardware platform; development of a specialized software library for a high-level language that allows collecting and processing traces of the computational process. A method of formal representation of program traces is proposed, based on the mathematical apparatus of graph theory.
Conclusions. Computing process tracing is a software and hardware technology that allows you to track the characteristic features of the execution of a program code and describe them with the minimum required amount of information. By analyzing its own computational paths, the software system gains the possibility of lowlevel introspection with the possibility of further actions aimed at self-adaptation to changing operating conditions.
self-adaptation software, adaptive software systems, computational process tracing, graph theory, dynamic graph, Intel Processor Trace
1. Chang V. A Cybernetics Social Cloud. New York: Electronics & Computer Science, 2015.
2. Ding Z., Wei Z., Chen H. J. Syst. Software. Amsterdam: Elsevier, 2016, pp. 13–18.
3. Mayer P., Klarl A., Hennicker R. 7th IEEE International Conference on Self-Adaptation and Self-Organizing Systems Workshops (SASOW). Washington: IEEE Computer Society, 2013, pp. 89–94.
4. Bershadskiy A. M., Bozhday A. S., Evseeva Yu. I., Gudkov A. A. Modelirovanie, optimizatsiya i informatsionnye tekhnologii [Modeling, optimization and information technology]. 2018, no. 4, pp. 108–120. [In Russian]
5. Processor Tracing. Intel Developer Zone. Available at: https://software.intel.com/ content/www/us/en/develop/blogs/processor-tracing.html (accessed Aug. 23, 2020).
6. Intel 64 and IA-32 ArchitecturesSoftware Developer’s Manual. Intel Developer Zone. Available at: https://software.intel.com/sites/default/files/managed/39/c5/325462-sdmvol-1-2abcd-3abcd.pdf (accessed Aug. 23, 2020).
7. Last Branch Record Trace. Intel Developer Zonee. Available at: https://software. intel.com/content/www/us/en/develop/documentation/system-debug-legacy-user-guide/ top/common-debugger-tasks/execution-trace/last-branch-record-trace.html (accessed Aug. 23, 2020).
8. Enhance performance analysis with Intel Processor Trace. Performance explained easy. Available at: https://easyperf.net/blog/2019/08/23/Intel-Processor-Trace (data obrashche ¬niya: 23.08.2020).
9. Jiang C. A, Coenen F., Zito M. The Knowledge Engineering Review. 2004, no. 1, pp. 1–31.
10. Elseidy M., Abdelhamid E., Skiadopoulos S., Kalnis P. Proceedings of the VLDB Endowment. New York: ACM, 2014, pp. 445–450.
11. Karsten M., Kriegel H., Wackersreuther P. In Sixth International Conference on Data Mining (ICDM'06). Washington: IEEE Computer Society, 2006, pp. 18–22.
12. Bozhday A. S., Evseeva Yu. I. Izvestiya vysshikh uchebnykh zavedeniy. Povolzhskiy region. Tekhnicheskie nauki [University proceedings. Volga region. Engineering sciences]. 2018, no. 2 (46), pp. 74–86. [In Russian]